package com.hibuy.pc.util;

import com.google.gson.*;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 奶茶
 * Created on 2017/11/2.
 */
public class GsonUtil {

    private static Gson gson = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();

    /**
     * 转json串
     * @param object
     * @return
     */
    public static String toJson(Object object){
        return gson.toJson(object);
    }

    /**
     * jsonStr -> object
     * @param jsonStr 待转换json串
     * @param classes 类型
     * @param <T> 类型
     * @return
     */
    public static <T> T fromJsonToObject(String jsonStr,Class<T> classes){
        return gson.fromJson(jsonStr,classes);
    }

    /**
     * Object -> object
     * @param object
     * @param classes
     * @param <T>
     * @return
     */
    public static <T> T fromJsonToObject(Object object,Class<T> classes){
        return gson.fromJson(gson.toJson(object),classes);
    }
    /**
     * jsonStr -> List<T>
     * @param jsonStr
     * @param classes
     * @param <T>
     * @return
     */
    public static <T> List<T> fromJsonToList(String jsonStr,Class<T> classes){
        List<T> lst =  new ArrayList<T>();
        if(jsonStr != null && !("").equals(jsonStr)){
            JsonArray array = new JsonParser().parse(jsonStr).getAsJsonArray();
            for(final JsonElement elem : array){
                lst.add(gson.fromJson(elem, classes));
            }
        }
        return lst;
    }
}
